home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm31.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  45.7 KB  |  1,650 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:ADDRESS_OF.rf*/
  10. T0* r708add_comment(T708* C,T0* a1){
  11. T0* R=NULL;
  12. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  13. R=(T0*)C;
  14. }
  15. else {
  16. {T529*n=malloc(sizeof(*n));
  17. *n=M529;
  18. r529make(n,(T0*)C,a1);
  19. R=(T0*)n;
  20. }
  21. }
  22. /*FI*/return R;
  23. }
  24. int r708to_integer(T708* C){
  25. int R=0;
  26. r708error(r708start_position(C),((T0*)ms69_470));
  27. return R;
  28. }
  29. int r708is_a(T708* C,T0* a1){
  30. int R=0;
  31. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T900*)/*(IRF4.8result_type*/r708type_pointer()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
  32. /*IF*/if (!(R)) {
  33. r683add_position(r708start_position(C));
  34. r708error(X662start_position(a1),((T0*)ms4_662));
  35. }
  36. /*FI*/return R;
  37. }
  38. /*No:ADDRESS_OF.is_current*/
  39. /*No:ADDRESS_OF.jvm_branch_if_false*/
  40. /*No:ADDRESS_OF.static_value*/
  41. /*No:ADDRESS_OF.make*/
  42. /*No:ADDRESS_OF.feature_name*/
  43. /*No:ADDRESS_OF.compile_to_jvm_assignment*/
  44. /*No:ADDRESS_OF.fz_iinaiv*/
  45. /*No:ADDRESS_OF.jvm_branch_if_true*/
  46. T0* r708start_position(T708* C){
  47. T0* R=NULL;
  48. R=X776start_position((((T708*)C))->_feature_name/*12*/);
  49. return R;
  50. }
  51. /*No:ADDRESS_OF.compile_to_jvm_old*/
  52. /*No:ADDRESS_OF.fz_jvm_error*/
  53. T0* r708to_runnable(T708* C,T0* a1){
  54. T0* R=NULL;
  55. /*IF*/if (((((T708*)C))->_current_type/*8*/)==((void*)(NULL))) {
  56. C->_current_type=a1;
  57. C->_rf=r355get_rf_with(((T355*)(X291run_class(a1))),(((T708*)C))->_feature_name/*12*/);
  58. /*IF*/if (((((T708*)C))->_rf/*16*/)==((void*)(NULL))) {
  59. r708error(r708start_position(C),((T0*)ms2_708));
  60. }
  61. /*FI*/R=(T0*)C;
  62. }
  63. else {
  64. {T708*n=malloc(sizeof(*n));
  65. *n=M708;
  66. /*[IRF3.3make*/((((T708*)(n)))->_feature_name)=((((T708*)C))->_feature_name/*12*/);
  67. /*]*/
  68. R=(T0*)n;
  69. }
  70. R=r708to_runnable(((T708*)R),a1);
  71. }
  72. /*FI*/return R;
  73. }
  74. /*No:ADDRESS_OF.result_type*/
  75. /*No:ADDRESS_OF.is_result*/
  76. /*No:ADDRESS_OF.is_static*/
  77. /*No:ADDRESS_OF.compile_to_jvm_into*/
  78. void r708compile_target_to_jvm(T708* C){
  79. r683add_position(r708start_position(C));
  80. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms76_470);
  81. r683fatal_error(((T683*)(oBC364eh)),b1);
  82. }/*]*/
  83. }
  84. /*No:ADDRESS_OF.can_be_dropped*/
  85. /*No:ADDRESS_OF.current_type*/
  86. /*No:ADDRESS_OF.jvm_assign*/
  87. /*No:ADDRESS_OF.static_value_mem*/
  88. /*No:ADDRESS_OF.is_manifest_string*/
  89. /*No:ADDRESS_OF.is_void*/
  90. int fBC364type_pointer=0;
  91. T0*oBC364type_pointer=NULL;
  92. T0* r708type_pointer(void){
  93. if (fBC364type_pointer==0){
  94. T0* R=NULL;
  95. fBC364type_pointer=1;
  96. {T900*n=malloc(sizeof(*n));
  97. *n=M900;
  98. r900make(n,NULL);
  99. R=(T0*)n;
  100. }
  101. oBC364type_pointer=R;}
  102. return oBC364type_pointer;}
  103. void r708compile_to_jvm(T708* C){
  104. r683add_position(r708start_position(C));
  105. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms76_470);
  106. r683fatal_error(((T683*)(oBC364eh)),b1);
  107. }/*]*/
  108. }
  109. /*No:ADDRESS_OF.is_pre_computable*/
  110. /*No:ADDRESS_OF.use_current*/
  111. void r708error(T0* a1,T0* a2){
  112. r683add_position(a1);
  113. r683error(((T683*)(oBC364eh)),a2);
  114. }
  115. /*No:ADDRESS_OF.isa_dca_inline_argument*/
  116. /*No:ADDRESS_OF.fatal_error*/
  117. /*No:ADDRESS_OF.afd_check*/
  118. int r709id(T709* C){
  119. int R=0;
  120. R=(((T355*)((T355*)(r709run_class(C)))))->_id/*4*/;
  121. return R;
  122. }
  123. /*No:TYPE_ARRAY.jvm_target_descriptor_in*/
  124. /*No:TYPE_ARRAY.array_of*/
  125. T0*oBC709tmp_written_mark=NULL;
  126. /*No:TYPE_ARRAY.jvm_if_x_eq*/
  127. int r709has_creation(T709* C,T0* a1){
  128. int R=0;
  129. /*IF*/if ((C)==((void*)((((T709*)C))->_run_type/*16*/))) {
  130. R=r605has_creation(((T605*)(r709base_class(C))),a1);
  131. }
  132. else {
  133. R=r709has_creation(((T709*)((((T709*)C))->_run_type/*16*/)),a1);
  134. }
  135. /*FI*/return R;
  136. }
  137. /*No:TYPE_ARRAY.is_anchored*/
  138. /*No:TYPE_ARRAY.is_array*/
  139. int r709is_a(T709* C,T0* a1){
  140. int R=0;
  141. /*IF*/if ((r709run_class(C))==((void*)(X291run_class(a1)))) {
  142. R=1;
  143. }
  144.  else if (X291is_array(a1)) {
  145. R=X291is_a(/*(IRF4.6array_of*/r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1)/*)*/,r701item(((T701*)(X291generic_list(a1))),1));
  146. /*IF*/if (!(R)) {
  147. /*[IRF3.6extend*/{char b1='\40';
  148. r7extend(((T7*)(oBC683explanation)),b1);
  149. }/*]*/
  150. r683add_type((T0*)C,((T0*)ms71_470));
  151. r683add_type(a1,((T0*)ms67_470));
  152. }
  153. /*FI*/}
  154.  else if (r605is_subclass_of(((T605*)(r709base_class(C))),X291base_class(a1))) {
  155. /*IF*/if (X291is_generic(a1)) {
  156. R=r605is_a_vncg(((T605*)(r709base_class(C))),(T0*)C,a1);
  157. }
  158. else {
  159. R=1;
  160. }
  161. /*FI*/}
  162. /*FI*//*IF*/if (!(R)) {
  163. r683add_type((T0*)C,((T0*)ms71_470));
  164. r683add_type(a1,((T0*)ms67_470));
  165. }
  166. /*FI*/return R;
  167. }
  168. /*No:TYPE_ARRAY.jvm_to_reference*/
  169. /*No:TYPE_ARRAY.is_pointer*/
  170. /*No:TYPE_ARRAY.run_type*/
  171. /*No:TYPE_ARRAY.is_dummy_expanded*/
  172. /*No:TYPE_ARRAY.us_lower*/
  173. int r709jvm_push_default(void){
  174. int R=0;
  175. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  176. /*]*/
  177. R=1;
  178. return R;
  179. }
  180. /*No:TYPE_ARRAY.us_array*/
  181. /*No:TYPE_ARRAY.is_string*/
  182. /*No:TYPE_ARRAY.is_like_feature*/
  183. /*No:TYPE_ARRAY.is_like_current*/
  184. /*No:TYPE_ARRAY.us_capacity*/
  185. void r709make(T709* C,T0* a1,T0* a2){
  186. T0* _owwm=NULL;
  187. {T451*n=malloc(sizeof(*n));
  188. *n=M451;
  189. r451make(n,((T0*)ms2_473),a1);
  190. C->_base_class_name=(T0*)n;
  191. }
  192. C->_generic_list=se_ma701(1,a2);
  193. _owwm=X291written_mark(a2);
  194. r7copy(((T7*)(oBC709tmp_written_mark)),((T0*)ms2_473));
  195. r7extend(((T7*)(oBC709tmp_written_mark)),'\133');
  196. r7append(((T7*)(oBC709tmp_written_mark)),_owwm);
  197. r7extend(((T7*)(oBC709tmp_written_mark)),'\135');
  198. C->_written_mark=r902item(oBC709tmp_written_mark);
  199. }
  200. T0* r709jvm_root_class(void){
  201. if (fBC364jvm_root_class==0){
  202. T0* R=NULL;
  203. fBC364jvm_root_class=1;
  204. {T7*n=malloc(sizeof(*n));
  205. *n=M7;
  206. r7make(n,12);
  207. R=(T0*)n;
  208. }
  209. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  210. r7extend(((T7*)R),'\57');
  211. r7append(((T7*)R),((T0*)ms112_470));
  212. oBC364jvm_root_class=R;}
  213. return oBC364jvm_root_class;}
  214. /*No:TYPE_ARRAY.nb_errors*/
  215. /*No:TYPE_ARRAY.jvm_return_code*/
  216. /*No:TYPE_ARRAY.jvm_xnewarray*/
  217. /*No:TYPE_ARRAY.jvm_descriptor_in*/
  218. /*No:TYPE_ARRAY.start_position*/
  219. /*No:TYPE_ARRAY.fz_inako*/
  220. /*No:TYPE_ARRAY.is_user_expanded*/
  221. /*No:TYPE_ARRAY.is_character*/
  222. /*No:TYPE_ARRAY.written_mark*/
  223. T0* r709to_runnable(T709* C,T0* a1){
  224. T0* R=NULL;
  225. T0* _rc=NULL;
  226. T0* _rt=NULL;
  227. T0* _elt2=NULL;
  228. T0* _elt1=NULL;
  229. /*IF*/if (((((T709*)C))->_run_type/*16*/)==((void*)(C))) {
  230. R=(T0*)C;
  231. }
  232. else {
  233. _elt1=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
  234. _elt2=X291to_runnable(_elt1,a1);
  235. /*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
  236. /*IF*/if ((_elt2)!=((void*)(NULL))) {
  237. r683add_position(X291start_position(_elt2));
  238. }
  239. /*FI*/r709error(X291start_position(_elt1),((T0*)ms59_470));
  240. }
  241. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  242. _elt2=X291run_type(_elt2);
  243. /*IF*/if (((((T709*)C))->_run_type/*16*/)==((void*)(NULL))) {
  244. R=(T0*)C;
  245. /*IF*/if ((_elt2)==((void*)(_elt1))) {
  246. C->_run_type=(T0*)C;
  247. r709load_basic_features(C);
  248. }
  249. else {
  250. {T709*n=malloc(sizeof(*n));
  251. *n=M709;
  252. r709make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T709*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  253. C->_run_type=(T0*)n;
  254. }
  255. r709load_basic_features(((T709*)((((T709*)C))->_run_type/*16*/)));
  256. }
  257. /*FI*/}
  258. else {
  259. R=r709twin(C);
  260. {T709*n=malloc(sizeof(*n));
  261. *n=M709;
  262. r709make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T709*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  263. _rt=(T0*)n;
  264. }
  265. /*[IRF3.3set_run_type*/((((T709*)(((T709*)R))))->_run_type)=(_rt);
  266. /*]*/
  267. r709load_basic_features(((T709*)_rt));
  268. }
  269. /*FI*/}
  270. /*FI*/}
  271. /*FI*/_rc=X291run_class(r701item(((T701*)((((T709*)((T709*)R)))->_generic_list/*8*/)),1));
  272. _rc=r709run_class(((T709*)R));
  273. return R;
  274. }
  275. int r709is_run_type(T709* C){
  276. int R=0;
  277. T0* _t=NULL;
  278. /*IF*/if (((((T709*)C))->_run_type/*16*/)!=((void*)(NULL))) {
  279. R=1;
  280. }
  281. else {
  282. _t=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
  283. /*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
  284. C->_run_type=(T0*)C;
  285. R=1;
  286. }
  287. /*FI*/}
  288. /*FI*/return R;
  289. }
  290. /*No:TYPE_ARRAY.is_formal_generic*/
  291. /*No:TYPE_ARRAY.generic_list*/
  292. /*No:TYPE_ARRAY.is_real*/
  293. T0* r709twin(T709* C){
  294. T0* R=NULL;
  295. R=malloc(sizeof(*C));
  296. *((T709*)R)=*C;
  297. return R;
  298. }
  299. void r709standard_jvm_check_class_invariant(T709* C){
  300. /*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
  301. r355jvm_check_class_invariant(((T355*)(r709run_class(C))));
  302. }
  303. /*FI*/}
  304. /*No:TYPE_ARRAY.is_bit*/
  305. /*No:TYPE_ARRAY.jvm_check_class_invariant*/
  306. T0* r709jvm_root_descriptor(void){
  307. if (fBC364jvm_root_descriptor==0){
  308. T0* R=NULL;
  309. fBC364jvm_root_descriptor=1;
  310. {T7*n=malloc(sizeof(*n));
  311. *n=M7;
  312. r7make(n,12);
  313. R=(T0*)n;
  314. }
  315. r7extend(((T7*)R),'L');
  316. r7append(((T7*)R),r709jvm_root_class());
  317. r7extend(((T7*)R),'\73');
  318. oBC364jvm_root_descriptor=R;}
  319. return oBC364jvm_root_descriptor;}
  320. /*No:TYPE_ARRAY.jvm_xaload*/
  321. T0* r709smallest_ancestor(T709* C,T0* a1){
  322. T0* R=NULL;
  323. T0* _array_of3=NULL;
  324. T0* _array_of2=NULL;
  325. T0* _array_of1=NULL;
  326. T0* _rto=NULL;
  327. _rto=X291run_type(a1);
  328. /*IF*/if (X291is_array(_rto)) {
  329. _array_of1=X291run_type(/*(IRF4.6array_of*/r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1)/*)*/);
  330. _array_of2=r701item(((T701*)(X291generic_list(_rto))),1);
  331. _array_of3=X291smallest_ancestor(_array_of1,_array_of2);
  332. /*IF*/if ((_array_of3)==((void*)(_array_of1))) {
  333. R=(T0*)C;
  334. }
  335.  else if ((_array_of3)==((void*)(_array_of2))) {
  336. R=a1;
  337. }
  338. else {
  339. {T709*n=malloc(sizeof(*n));
  340. *n=M709;
  341. r709make(n,NULL,_array_of3);
  342. R=(T0*)n;
  343. }
  344. }
  345. /*FI*/}
  346. else {
  347. R=X291smallest_ancestor(_rto,(T0*)C);
  348. }
  349. /*FI*/return R;
  350. }
  351. /*No:TYPE_ARRAY.set_run_type*/
  352. /*No:TYPE_ARRAY.is_boolean*/
  353. /*No:TYPE_ARRAY.is_double*/
  354. int r709jvm_stack_space(void){
  355. int R=0;
  356. /*IF*//*AF*//*AE*/
  357. R=1;
  358. /*FI*/return R;
  359. }
  360. /*No:TYPE_ARRAY.us_storage*/
  361. T0* r709run_class(T709* C){
  362. T0* R=NULL;
  363. /*IF*/if (r709is_run_type(C)) {
  364. R=r604run_class((((T709*)C))->_run_type/*16*/);
  365. }
  366. /*FI*/return R;
  367. }
  368. T0* r709run_time_mark(T709* C){
  369. T0* R=NULL;
  370. /*IF*/if (r709is_run_type(C)) {
  371. R=(((T709*)((T709*)((((T709*)C))->_run_type/*16*/))))->_written_mark/*12*/;
  372. }
  373. /*FI*/return R;
  374. }
  375. int r709is_a_in(T709* C,T0* a1,T0* a2){
  376. int R=0;
  377. T0* _ct=NULL;
  378. T0* _t2=NULL;
  379. T0* _t1=NULL;
  380. /*IF*/if (((((T709*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
  381. R=1;
  382. }
  383. else {
  384. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  385. _t1=r709to_runnable(C,_ct);
  386. _t2=X291to_runnable(a1,_ct);
  387. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  388. R=1;
  389. }
  390. else {
  391. R=X291is_a(_t1,_t2);
  392. }
  393. /*FI*/}
  394. /*FI*/return R;
  395. }
  396. T0* r709look_up_for(T709* C,T0* a1,T0* a2){
  397. T0* R=NULL;
  398. R=r605look_up_for(((T605*)(r709base_class(C))),a1,a2);
  399. return R;
  400. }
  401. /*No:TYPE_ARRAY.jvm_convert_to*/
  402. /*No:TYPE_ARRAY.expanded_initializer*/
  403. /*No:TYPE_ARRAY.fz_jvm_root*/
  404. /*No:TYPE_ARRAY.jvm_if_x_ne*/
  405. /*No:TYPE_ARRAY.fz_dot*/
  406. /*No:TYPE_ARRAY.is_generic*/
  407. /*No:TYPE_ARRAY.fz_bga*/
  408. /*No:TYPE_ARRAY.jvm_write_local*/
  409. void r709jvm_initialize_local(int a1){
  410. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  411. /*]*/
  412. /*[IRF3.6jvm_write_local*/{int b1=a1;
  413. r256opcode_astore(((T256*)(oBC364code_attribute)),b1);
  414. }/*]*/
  415. }
  416. /*No:TYPE_ARRAY.used_as_reference*/
  417. /*No:TYPE_ARRAY.is_reference*/
  418. void r709error(T0* a1,T0* a2){
  419. r683add_position(a1);
  420. r683error(((T683*)(oBC364eh)),a2);
  421. }
  422. void r709load_basic_features(T709* C){
  423. T0* _rc=NULL;
  424. T0* _rf=NULL;
  425. T0* _elt_type=NULL;
  426. _elt_type=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
  427. /*IF*/if (X291is_expanded(_elt_type)) {
  428. r355set_at_run_time(((T355*)(X291run_class(_elt_type))));
  429. }
  430. /*FI*/_rc=r709run_class(C);
  431. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms55_473));
  432. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms87_473));
  433. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms140_473));
  434. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms130_473));
  435. }
  436. T0* r709base_class(T709* C){
  437. T0* R=NULL;
  438. T0* _bcn=NULL;
  439. _bcn=(((T709*)C))->_base_class_name/*4*/;
  440. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  441. R=r451base_class(((T451*)_bcn));
  442. }
  443. else {
  444. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  445. r7append(((T7*)(oBC683explanation)),b1);
  446. }/*]*/
  447. r683add_type((T0*)C,((T0*)ms67_470));
  448. r683print_as_fatal_error(((T683*)(oBC364eh)));
  449. }
  450. /*FI*/return R;
  451. }
  452. /*No:TYPE_ARRAY.jvm_xastore*/
  453. /*No:TYPE_ARRAY.is_any*/
  454. /*No:TYPE_ARRAY.jvm_method_flags*/
  455. /*No:TYPE_ARRAY.us_upper*/
  456. /*No:TYPE_ARRAY.base_class_name*/
  457. /*No:TYPE_ARRAY.jvm_push_local*/
  458. /*No:TYPE_ARRAY.is_expanded*/
  459. /*No:TYPE_ARRAY.is_basic_eiffel_expanded*/
  460. /*No:TYPE_ARRAY.is_none*/
  461. /*No:TYPE_ARRAY.is_integer*/
  462. void r709make_runnable(T709* C,T0* a1,T0* a2){
  463. r709make(C,a1,a2);
  464. C->_run_type=(T0*)C;
  465. }
  466. /*No:E_OLD.id*/
  467. T0* r664add_comment(T664* C,T0* a1){
  468. T0* R=NULL;
  469. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  470. R=(T0*)C;
  471. }
  472. else {
  473. {T529*n=malloc(sizeof(*n));
  474. *n=M529;
  475. r529make(n,(T0*)C,a1);
  476. R=(T0*)n;
  477. }
  478. }
  479. /*FI*/return R;
  480. }
  481. int r664to_integer(T664* C){
  482. int R=0;
  483. r664error(r664start_position(C),((T0*)ms69_470));
  484. return R;
  485. }
  486. int r664is_a(T664* C,T0* a1){
  487. int R=0;
  488. R=X291is_a(X291run_type(r664result_type(C)),X291run_type(X662result_type(a1)));
  489. /*IF*/if (!(R)) {
  490. r683add_position(r664start_position(C));
  491. r664error(X662start_position(a1),((T0*)ms4_662));
  492. }
  493. /*FI*/return R;
  494. }
  495. /*No:E_OLD.is_current*/
  496. /*No:E_OLD.jvm_branch_if_false*/
  497. /*No:E_OLD.static_value*/
  498. /*No:E_OLD.make*/
  499. /*No:E_OLD.compile_to_jvm_assignment*/
  500. /*No:E_OLD.fz_iinaiv*/
  501. /*No:E_OLD.jvm_branch_if_true*/
  502. /*No:E_OLD.expression*/
  503. T0* r664start_position(T664* C){
  504. T0* R=NULL;
  505. R=X662start_position((((T664*)C))->_expression/*12*/);
  506. return R;
  507. }
  508. void r664compile_to_jvm_old(T664* C){
  509. T0* _rt=NULL;
  510. T0* _e=NULL;
  511. _e=(((T664*)C))->_expression/*12*/;
  512. _rt=X291run_type(X662result_type(_e));
  513. C->_id=r256extra_local(((T256*)(oBC364code_attribute)),_rt);
  514. X662compile_to_jvm(_e);
  515. X291jvm_write_local(_rt,(((T664*)C))->_id/*16*/);
  516. }
  517. T0* r664to_runnable(T664* C,T0* a1){
  518. T0* R=NULL;
  519. T0* _exp=NULL;
  520. /*IF*/if (((((T664*)C))->_current_type/*8*/)==((void*)(NULL))) {
  521. C->_current_type=a1;
  522. _exp=X662to_runnable((((T664*)C))->_expression/*12*/,a1);
  523. /*IF*/if ((_exp)==((void*)(NULL))) {
  524. r664error(r664start_position(C),((T0*)ms1_664));
  525. }
  526. else {
  527. C->_expression=_exp;
  528. }
  529. /*FI*/r417increment(((T417*)(oBC664id_counter)));
  530. C->_id=(((T417*)((T417*)(oBC664id_counter))))->_value/*0*/;
  531. R=(T0*)C;
  532. }
  533. else {
  534. {T664*n=malloc(sizeof(*n));
  535. *n=M664;
  536. /*[IRF3.3make*/((((T664*)(n)))->_expression)=((((T664*)C))->_expression/*12*/);
  537. /*]*/
  538. R=(T0*)n;
  539. }
  540. R=r664to_runnable(((T664*)R),a1);
  541. }
  542. /*FI*/return R;
  543. }
  544. T0* r664result_type(T664* C){
  545. T0* R=NULL;
  546. R=X662result_type((((T664*)C))->_expression/*12*/);
  547. return R;
  548. }
  549. /*No:E_OLD.is_result*/
  550. /*No:E_OLD.is_static*/
  551. void r664standard_compile_target_to_jvm(T664* C){
  552. r664compile_to_jvm(C);
  553. X291jvm_check_class_invariant(r664result_type(C));
  554. }
  555. int r664compile_to_jvm_into(T664* C,T0* a1){
  556. int R=0;
  557. R=r664standard_compile_to_jvm_into(C,a1);
  558. return R;
  559. }
  560. /*No:E_OLD.compile_target_to_jvm*/
  561. /*No:E_OLD.can_be_dropped*/
  562. /*No:E_OLD.current_type*/
  563. /*No:E_OLD.jvm_assign*/
  564. /*No:E_OLD.static_value_mem*/
  565. /*No:E_OLD.is_manifest_string*/
  566. /*No:E_OLD.is_void*/
  567. int r664jvm_standard_branch_if_false(T664* C){
  568. int R=0;
  569. r664compile_to_jvm(C);
  570. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  571. return R;
  572. }
  573. void r664compile_to_jvm(T664* C){
  574. X291jvm_push_local(X662result_type((((T664*)C))->_expression/*12*/),(((T664*)C))->_id/*16*/);
  575. }
  576. /*No:E_OLD.is_pre_computable*/
  577. int r664jvm_standard_branch_if_true(T664* C){
  578. int R=0;
  579. r664compile_to_jvm(C);
  580. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  581. return R;
  582. }
  583. int r664use_current(T664* C){
  584. int R=0;
  585. R=X662use_current((((T664*)C))->_expression/*12*/);
  586. return R;
  587. }
  588. void r664error(T0* a1,T0* a2){
  589. r683add_position(a1);
  590. r683error(((T683*)(oBC364eh)),a2);
  591. }
  592. /*No:E_OLD.isa_dca_inline_argument*/
  593. int r664standard_compile_to_jvm_into(T664* C,T0* a1){
  594. int R=0;
  595. r664compile_to_jvm(C);
  596. R=X291jvm_convert_to(X291run_type(r664result_type(C)),a1);
  597. return R;
  598. }
  599. T0*oBC664id_counter=NULL;
  600. void r664afd_check(T664* C){
  601. X662afd_check((((T664*)C))->_expression/*12*/);
  602. }
  603. /*No:CST_ATT_CHARACTER.arguments*/
  604. T0* r554try_to_undefine(T554* C,T0* a1,T0* a2){
  605. T0* R=NULL;
  606. X776undefine_in(a1,a2);
  607. R=r554try_to_undefine_aux(C,a1,a2);
  608. /*IF*/if ((R)!=((void*)(NULL))) {
  609. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T554*)C))->_clients/*20*/);
  610. /*]*/
  611. }
  612. else {
  613. r605fatal_undefine(((T605*)a2),a1);
  614. }
  615. /*FI*/return R;
  616. }
  617. /*No:CST_ATT_CHARACTER.is_deferred*/
  618. void r554add_into(T554* C,T0* a1){
  619. T0* _fn=NULL;
  620. int _i=0;
  621. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  622. _i=1;
  623. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  624. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  625. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  626. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  627. r683add_position(X776start_position(_fn));
  628. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  629. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  630. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  631. r7append(((T7*)(oBC683explanation)),b1);
  632. }/*]*/
  633. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  634. }
  635. else {
  636. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  637. }
  638. /*FI*/_i=(_i)+(1);
  639. }
  640. }
  641. T0* r554try_to_undefine_aux(T554* C,T0* a1,T0* a2){
  642. T0* R=NULL;
  643. r683add_position(r554start_position(C));
  644. r554error(X776start_position(a1),((T0*)ms1_321));
  645. r605fatal_undefine(((T605*)a2),a1);
  646. return R;
  647. }
  648. void r554make(T554* C,T0* a1,T0* a2,T0* a3){
  649. r554make_e_feature(C,a1,a2);
  650. C->_value_mem=a3;
  651. }
  652. /*No:CST_ATT_CHARACTER.nb_errors*/
  653. /*No:CST_ATT_CHARACTER.set_header_comment*/
  654. T0* r554start_position(T554* C){
  655. T0* R=NULL;
  656. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  657. return R;
  658. }
  659. T0* r554to_run_feature(T554* C,T0* a1,T0* a2){
  660. T0* R=NULL;
  661. T0* _rc=NULL;
  662. _rc=X291run_class(a1);
  663. R=r355at(((T355*)_rc),a2);
  664. if(NULL!=(R))switch(((T0*)R)->id) {
  665. case 808: 
  666. break;
  667. default:
  668. R=NULL;
  669. };/*IF*/if ((R)==((void*)(NULL))) {
  670. {T808*n=malloc(sizeof(*n));
  671. *n=M808;
  672. r808make(n,a1,a2,(T0*)C);
  673. R=(T0*)n;
  674. }
  675. }
  676. /*FI*/return R;
  677. }
  678. /*No:CST_ATT_CHARACTER.ensure_assertion*/
  679. /*No:CST_ATT_CHARACTER.code_require*/
  680. /*No:CST_ATT_CHARACTER.result_type*/
  681. /*No:CST_ATT_CHARACTER.em1*/
  682. /*No:CST_ATT_CHARACTER.set_clients*/
  683. /*No:CST_ATT_CHARACTER.em2*/
  684. /*No:CST_ATT_CHARACTER.value*/
  685. /*No:CST_ATT_CHARACTER.require_assertion*/
  686. /*No:CST_ATT_CHARACTER.names*/
  687. /*No:CST_ATT_CHARACTER.value_mem*/
  688. int r554can_hide(T554* C,T0* a1,T0* a2){
  689. int R=0;
  690. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  691. /*IF*/if ((((((T554*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  692. r683add_position(X359start_position(a1));
  693. r554error(r554start_position(C),((T0*)ms5_359));
  694. }
  695. /*FI*/}
  696. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  697. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  698. r554error(r554start_position(C),((T0*)ms6_359));
  699. }
  700. /*FI*/}
  701. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  702. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  703. /*IF*/if (!(X291is_a_in((((T554*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  704. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  705. r7append(((T7*)(oBC683explanation)),b1);
  706. }/*]*/
  707. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  708. r7append(((T7*)(oBC683explanation)),b1);
  709. }/*]*/
  710. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  711. }
  712. /*FI*/}
  713. /*FI*/}
  714. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  715. /*IF*//*AF*//*AE*/
  716. /*FI*/}
  717. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  718. return R;
  719. }
  720. /*No:CST_ATT_CHARACTER.header_comment*/
  721. int r554is_merge_with(T554* C,T0* a1,T0* a2){
  722. int R=0;
  723. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  724. /*IF*/if ((((((T554*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  725. r683add_position(X359start_position(a1));
  726. r554error(r554start_position(C),((T0*)ms2_359));
  727. }
  728. /*FI*/}
  729. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  730. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  731. r554error(r554start_position(C),((T0*)ms3_359));
  732. }
  733. /*FI*/}
  734. /*FI*//*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  735. /*IF*/if (!(X291is_a_in((((T554*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  736. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  737. }
  738. /*FI*/}
  739. /*FI*//*IF*//*AF*//*AE*/
  740. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  741. return R;
  742. }
  743. /*No:CST_ATT_CHARACTER.fz_dot*/
  744. /*No:CST_ATT_CHARACTER.first_name*/
  745. /*No:CST_ATT_CHARACTER.clients*/
  746. void r554collect_for(int a1){
  747. /*IF*/if ((a1)==(1001)) {
  748. /*IF*//*AF*//*AE*/
  749. /*FI*/}
  750. else {
  751. /*IF*//*AF*//*AE*/
  752. /*FI*/}
  753. /*FI*/}
  754. void r554error(T0* a1,T0* a2){
  755. r683add_position(a1);
  756. r683error(((T683*)(oBC364eh)),a2);
  757. }
  758. /*No:CST_ATT_CHARACTER.base_class*/
  759. void r554make_e_feature(T554* C,T0* a1,T0* a2){
  760. C->_names=a1;
  761. C->_result_type=a2;
  762. }
  763. /*No:CALL_INFIX_POWER.arguments*/
  764. T0* r557add_comment(T557* C,T0* a1){
  765. T0* R=NULL;
  766. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  767. R=(T0*)C;
  768. }
  769. else {
  770. {T529*n=malloc(sizeof(*n));
  771. *n=M529;
  772. r529make(n,(T0*)C,a1);
  773. R=(T0*)n;
  774. }
  775. }
  776. /*FI*/return R;
  777. }
  778. int r557to_integer(T557* C){
  779. int R=0;
  780. r557error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T557*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  781. return R;
  782. }
  783. int r557is_a(T557* C,T0* a1){
  784. int R=0;
  785. R=X291is_a(X291run_type((((T557*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  786. /*IF*/if (!(R)) {
  787. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T557*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  788. r557error(X662start_position(a1),((T0*)ms4_662));
  789. }
  790. /*FI*/return R;
  791. }
  792. /*No:CALL_INFIX_POWER.is_current*/
  793. /*No:CALL_INFIX_POWER.jvm_branch_if_false*/
  794. /*No:CALL_INFIX_POWER.static_value*/
  795. void r557make(T557* C,T0* a1,T0* a2,T0* a3){
  796. T0* _eal=NULL;
  797. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  798. r683add_position(a2);
  799. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  800. r683fatal_error(((T683*)(oBC364eh)),b1);
  801. }/*]*/
  802. }
  803. /*FI*/{T454*n=malloc(sizeof(*n));
  804. *n=M454;
  805. r454make(n,r557operator(),a2);
  806. C->_feature_name=(T0*)n;
  807. }
  808. {T431*n=malloc(sizeof(*n));
  809. *n=M431;
  810. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  811. /*]*/
  812. _eal=(T0*)n;
  813. }
  814. r557make_call_1(C,a1,(((T557*)C))->_feature_name/*28*/,_eal);
  815. }
  816. /*No:CALL_INFIX_POWER.nb_errors*/
  817. /*No:CALL_INFIX_POWER.feature_name*/
  818. /*No:CALL_INFIX_POWER.compile_to_jvm_assignment*/
  819. /*No:CALL_INFIX_POWER.fz_iinaiv*/
  820. /*No:CALL_INFIX_POWER.arg_count*/
  821. /*No:CALL_INFIX_POWER.jvm_branch_if_true*/
  822. /*No:CALL_INFIX_POWER.run_feature*/
  823. /*No:CALL_INFIX_POWER.start_position*/
  824. void r557compile_to_jvm_old(T557* C){
  825. X662compile_to_jvm_old((((T557*)C))->_target/*12*/);
  826. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T557*)C))->_arguments/*24*/)));
  827. }
  828. /*FI*/}
  829. /*No:CALL_INFIX_POWER.target*/
  830. T0* r557to_runnable(T557* C,T0* a1){
  831. T0* R=NULL;
  832. T0* _tla=NULL;
  833. T0* _a=NULL;
  834. /*IF*/if (((((T557*)C))->_current_type/*8*/)==((void*)(NULL))) {
  835. r557to_runnable_0(C,a1);
  836. _a=r431to_runnable(((T431*)((((T557*)C))->_arguments/*24*/)),a1);
  837. /*IF*/if ((_a)==((void*)(NULL))) {
  838. r557error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  839. }
  840. else {
  841. C->_arguments=_a;
  842. }
  843. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  844. r431match_with(((T431*)((((T557*)C))->_arguments/*24*/)),(((T557*)C))->_run_feature/*16*/);
  845. }
  846. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  847. _tla=(((T557*)C))->_result_type/*20*/;
  848. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  849. case 239: 
  850. break;
  851. default:
  852. _tla=NULL;
  853. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  854. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*24*/)))/*)*/));
  855. }
  856. /*FI*/}
  857. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  858. R=(T0*)C;
  859. }
  860. /*FI*/}
  861. else {
  862. R=r557twin(C);
  863. /*[IRF3.3set_current_type*/((((T557*)(((T557*)R))))->_current_type)=(NULL);
  864. /*]*/
  865. R=r557to_runnable(((T557*)R),a1);
  866. }
  867. /*FI*/return R;
  868. }
  869. /*No:CALL_INFIX_POWER.result_type*/
  870. /*No:CALL_INFIX_POWER.is_result*/
  871. T0* r557twin(T557* C){
  872. T0* R=NULL;
  873. R=malloc(sizeof(*C));
  874. *((T557*)R)=*C;
  875. return R;
  876. }
  877. /*No:CALL_INFIX_POWER.set_current_type*/
  878. T0* r557operator(void){
  879. T0* R=NULL;
  880. R=((T0*)ms44_473);
  881. return R;
  882. }
  883. int r557is_static(T557* C){
  884. int R=0;
  885. /*IF*/if (X291is_integer((((T557*)C))->_result_type/*20*/)) {
  886. /*IF*/if ((X662is_static((((T557*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*24*/)))/*)*/))) {
  887. R=1;
  888. C->_static_value_mem=r2_px_94(X662static_value((((T557*)C))->_target/*12*/),X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*24*/)))/*)*/));
  889. }
  890. /*FI*/}
  891. /*FI*/return R;
  892. }
  893. void r557standard_compile_target_to_jvm(T557* C){
  894. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T557* C1=C;
  895. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  896. }/*]*/
  897. /*]*/
  898. X291jvm_check_class_invariant((((T557*)C))->_result_type/*20*/);
  899. }
  900. int r557compile_to_jvm_into(T557* C,T0* a1){
  901. int R=0;
  902. R=r557standard_compile_to_jvm_into(C,a1);
  903. return R;
  904. }
  905. /*No:CALL_INFIX_POWER.compile_target_to_jvm*/
  906. /*No:CALL_INFIX_POWER.fz_07*/
  907. /*No:CALL_INFIX_POWER.can_be_dropped*/
  908. /*No:CALL_INFIX_POWER.current_type*/
  909. /*No:CALL_INFIX_POWER.jvm_assign*/
  910. /*No:CALL_INFIX_POWER.static_value_mem*/
  911. void r557make_call_1(T557* C,T0* a1,T0* a2,T0* a3){
  912. C->_target=a1;
  913. C->_feature_name=a2;
  914. C->_arguments=a3;
  915. }
  916. /*No:CALL_INFIX_POWER.is_manifest_string*/
  917. /*No:CALL_INFIX_POWER.is_void*/
  918. int r557jvm_standard_branch_if_false(T557* C){
  919. int R=0;
  920. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T557* C1=C;
  921. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  922. }/*]*/
  923. /*]*/
  924. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  925. return R;
  926. }
  927. /*No:CALL_INFIX_POWER.compile_to_jvm*/
  928. void r557to_runnable_0(T557* C,T0* a1){
  929. C->_current_type=a1;
  930. r557cpc_to_runnable(C,a1);
  931. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T557*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  932. /*IF*/if (((((T557*)C))->_result_type/*20*/)==((void*)(NULL))) {
  933. r683add_position(X496start_position((((T557*)C))->_run_feature/*16*/));
  934. r557error((((T454*)((T454*)((((T557*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  935. }
  936.  else if (X291is_like_current((((T557*)C))->_result_type/*20*/)) {
  937. C->_result_type=X662result_type((((T557*)C))->_target/*12*/);
  938. }
  939. /*FI*/}
  940. /*No:CALL_INFIX_POWER.is_pre_computable*/
  941. int r557jvm_standard_branch_if_true(T557* C){
  942. int R=0;
  943. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T557* C1=C;
  944. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  945. }/*]*/
  946. /*]*/
  947. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  948. return R;
  949. }
  950. int r557use_current(T557* C){
  951. int R=0;
  952. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T557*)C))->_arguments/*24*/)));
  953. }
  954. /*FI*//*IF*/if (R) {
  955. }
  956.  else if (X662is_current((((T557*)C))->_target/*12*/)) {
  957. R=X496use_current((((T557*)C))->_run_feature/*16*/);
  958. }
  959. else {
  960. R=X662use_current((((T557*)C))->_target/*12*/);
  961. }
  962. /*FI*/return R;
  963. }
  964. void r557cpc_to_runnable(T557* C,T0* a1){
  965. T0* _rc=NULL;
  966. T0* _t=NULL;
  967. _t=X662to_runnable((((T557*)C))->_target/*12*/,a1);
  968. /*IF*/if ((_t)==((void*)(NULL))) {
  969. r683add_position(X662start_position((((T557*)C))->_target/*12*/));
  970. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  971. r683fatal_error(((T683*)(oBC364eh)),b1);
  972. }/*]*/
  973. }
  974. /*FI*/C->_target=_t;
  975. _rc=X291run_class(X662result_type((((T557*)C))->_target/*12*/));
  976. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  977. r576update((((T557*)C))->_target/*12*/,(((T557*)C))->_run_feature/*16*/);
  978. }
  979. void r557error(T0* a1,T0* a2){
  980. r683add_position(a1);
  981. r683error(((T683*)(oBC364eh)),a2);
  982. }
  983. /*No:CALL_INFIX_POWER.isa_dca_inline_argument*/
  984. /*No:CALL_INFIX_POWER.fatal_error*/
  985. /*No:CALL_INFIX_POWER.fz_bad_argument*/
  986. /*No:CALL_INFIX_POWER.arg1*/
  987. int r557standard_compile_to_jvm_into(T557* C,T0* a1){
  988. int R=0;
  989. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T557* C1=C;
  990. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  991. }/*]*/
  992. /*]*/
  993. R=X291jvm_convert_to(X291run_type((((T557*)C))->_result_type/*20*/),a1);
  994. return R;
  995. }
  996. /*No:CALL_INFIX_POWER.call_proc_call_c2jvm*/
  997. /*No:CALL_INFIX_POWER.us_pow*/
  998. void r557afd_check(T557* C){
  999. T0* _running=NULL;
  1000. T0* _rc=NULL;
  1001. _rc=X291run_class(X662result_type((((T557*)C))->_target/*12*/));
  1002. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1003. /*IF*/if ((_running)==((void*)(NULL))) {
  1004. r683add_position(X662start_position((((T557*)C))->_target/*12*/));
  1005. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1006. r7append(((T7*)(oBC683explanation)),b1);
  1007. }/*]*/
  1008. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1009. r7append(((T7*)(oBC683explanation)),b1);
  1010. }/*]*/
  1011. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1012. r7append(((T7*)(oBC683explanation)),b1);
  1013. }/*]*/
  1014. r683print_as_warning(((T683*)(oBC364eh)));
  1015. r355set_at_run_time(((T355*)_rc));
  1016. }
  1017.  else if ((r396count(((T396*)_running)))>(0)) {
  1018. r576update((((T557*)C))->_target/*12*/,(((T557*)C))->_run_feature/*16*/);
  1019. }
  1020. /*FI*/X662afd_check((((T557*)C))->_target/*12*/);
  1021. /*IF*/{/*AT*/r431afd_check(((T431*)((((T557*)C))->_arguments/*24*/)));
  1022. }
  1023. /*FI*/}
  1024. /*No:CALL_PREFIX_MINUS.arguments*/
  1025. T0* r72add_comment(T72* C,T0* a1){
  1026. T0* R=NULL;
  1027. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1028. R=(T0*)C;
  1029. }
  1030. else {
  1031. {T529*n=malloc(sizeof(*n));
  1032. *n=M529;
  1033. r529make(n,(T0*)C,a1);
  1034. R=(T0*)n;
  1035. }
  1036. }
  1037. /*FI*/return R;
  1038. }
  1039. int r72to_integer(T72* C){
  1040. int R=0;
  1041. T0* _rf1=NULL;
  1042. _rf1=(((T72*)C))->_run_feature/*16*/;
  1043. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  1044. case 808: 
  1045. break;
  1046. default:
  1047. _rf1=NULL;
  1048. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  1049. r72error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T72*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1050. }
  1051. else {
  1052. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*48*/);
  1053. }
  1054. /*FI*/return R;
  1055. }
  1056. int r72is_a(T72* C,T0* a1){
  1057. int R=0;
  1058. R=X291is_a(X291run_type((((T72*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  1059. /*IF*/if (!(R)) {
  1060. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T72*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  1061. r72error(X662start_position(a1),((T0*)ms4_662));
  1062. }
  1063. /*FI*/return R;
  1064. }
  1065. /*No:CALL_PREFIX_MINUS.is_current*/
  1066. /*No:CALL_PREFIX_MINUS.jvm_branch_if_false*/
  1067. /*No:CALL_PREFIX_MINUS.static_value*/
  1068. void r72make(T72* C,T0* a1,T0* a2){
  1069. {T406*n=malloc(sizeof(*n));
  1070. *n=M406;
  1071. r406make(n,r72operator(),a1);
  1072. C->_feature_name=(T0*)n;
  1073. }
  1074. r72make_call0(C,a2,(((T72*)C))->_feature_name/*24*/);
  1075. }
  1076. /*No:CALL_PREFIX_MINUS.nb_errors*/
  1077. /*No:CALL_PREFIX_MINUS.feature_name*/
  1078. /*No:CALL_PREFIX_MINUS.compile_to_jvm_assignment*/
  1079. /*No:CALL_PREFIX_MINUS.fz_iinaiv*/
  1080. /*No:CALL_PREFIX_MINUS.arg_count*/
  1081. /*No:CALL_PREFIX_MINUS.jvm_branch_if_true*/
  1082. /*No:CALL_PREFIX_MINUS.run_feature*/
  1083. /*No:CALL_PREFIX_MINUS.start_position*/
  1084. void r72compile_to_jvm_old(T72* C){
  1085. X662compile_to_jvm_old((((T72*)C))->_target/*12*/);
  1086. /*IF*//*AF*//*AE*/
  1087. /*FI*/}
  1088. /*No:CALL_PREFIX_MINUS.target*/
  1089. T0* r72to_runnable(T72* C,T0* a1){
  1090. T0* R=NULL;
  1091. /*IF*/if (((((T72*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1092. r72to_runnable_0(C,a1);
  1093. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T72*)C))->_run_feature/*16*/))>(0))) {
  1094. r683add_position((((T406*)((T406*)((((T72*)C))->_feature_name/*24*/))))->_start_position/*8*/);
  1095. r72error(X496start_position((((T72*)C))->_run_feature/*16*/),((T0*)ms1_752));
  1096. }
  1097. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1098. R=(T0*)C;
  1099. }
  1100. /*FI*/}
  1101. else {
  1102. R=r72twin(C);
  1103. /*[IRF3.3set_current_type*/((((T72*)(((T72*)R))))->_current_type)=(NULL);
  1104. /*]*/
  1105. R=r72to_runnable(((T72*)R),a1);
  1106. }
  1107. /*FI*/return R;
  1108. }
  1109. /*No:CALL_PREFIX_MINUS.result_type*/
  1110. /*No:CALL_PREFIX_MINUS.is_result*/
  1111. T0* r72twin(T72* C){
  1112. T0* R=NULL;
  1113. R=malloc(sizeof(*C));
  1114. *((T72*)R)=*C;
  1115. return R;
  1116. }
  1117. /*No:CALL_PREFIX_MINUS.set_current_type*/
  1118. T0* r72operator(void){
  1119. T0* R=NULL;
  1120. R=((T0*)ms37_473);
  1121. return R;
  1122. }
  1123. int r72is_static(T72* C){
  1124. int R=0;
  1125. /*IF*/if (X291is_integer(X662result_type((((T72*)C))->_target/*12*/))) {
  1126. /*IF*/if (X662is_static((((T72*)C))->_target/*12*/)) {
  1127. R=1;
  1128. C->_static_value_mem=-(X662static_value((((T72*)C))->_target/*12*/));
  1129. }
  1130. /*FI*/}
  1131. /*FI*/return R;
  1132. }
  1133. void r72standard_compile_target_to_jvm(T72* C){
  1134. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T72* C1=C;
  1135. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1136. }/*]*/
  1137. /*]*/
  1138. X291jvm_check_class_invariant((((T72*)C))->_result_type/*20*/);
  1139. }
  1140. int r72compile_to_jvm_into(T72* C,T0* a1){
  1141. int R=0;
  1142. R=r72standard_compile_to_jvm_into(C,a1);
  1143. return R;
  1144. }
  1145. /*No:CALL_PREFIX_MINUS.compile_target_to_jvm*/
  1146. /*No:CALL_PREFIX_MINUS.fz_07*/
  1147. int r72can_be_dropped(T72* C){
  1148. int R=0;
  1149. /*IF*/if (X662can_be_dropped((((T72*)C))->_target/*12*/)) {
  1150. R=X496can_be_dropped((((T72*)C))->_run_feature/*16*/);
  1151. }
  1152. /*FI*/return R;
  1153. }
  1154. /*No:CALL_PREFIX_MINUS.us_minus*/
  1155. /*No:CALL_PREFIX_MINUS.current_type*/
  1156. /*No:CALL_PREFIX_MINUS.jvm_assign*/
  1157. /*No:CALL_PREFIX_MINUS.static_value_mem*/
  1158. /*No:CALL_PREFIX_MINUS.is_manifest_string*/
  1159. /*No:CALL_PREFIX_MINUS.is_void*/
  1160. int r72jvm_standard_branch_if_false(T72* C){
  1161. int R=0;
  1162. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T72* C1=C;
  1163. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1164. }/*]*/
  1165. /*]*/
  1166. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  1167. return R;
  1168. }
  1169. /*No:CALL_PREFIX_MINUS.compile_to_jvm*/
  1170. void r72to_runnable_0(T72* C,T0* a1){
  1171. C->_current_type=a1;
  1172. r72cpc_to_runnable(C,a1);
  1173. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T72*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  1174. /*IF*/if (((((T72*)C))->_result_type/*20*/)==((void*)(NULL))) {
  1175. r683add_position(X496start_position((((T72*)C))->_run_feature/*16*/));
  1176. r72error((((T406*)((T406*)((((T72*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1177. }
  1178.  else if (X291is_like_current((((T72*)C))->_result_type/*20*/)) {
  1179. C->_result_type=X662result_type((((T72*)C))->_target/*12*/);
  1180. }
  1181. /*FI*/}
  1182. /*No:CALL_PREFIX_MINUS.is_pre_computable*/
  1183. int r72jvm_standard_branch_if_true(T72* C){
  1184. int R=0;
  1185. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T72* C1=C;
  1186. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1187. }/*]*/
  1188. /*]*/
  1189. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1190. return R;
  1191. }
  1192. int r72use_current(T72* C){
  1193. int R=0;
  1194. /*IF*//*AF*//*AE*/
  1195. /*FI*//*IF*/if (R) {
  1196. }
  1197.  else if (X662is_current((((T72*)C))->_target/*12*/)) {
  1198. R=X496use_current((((T72*)C))->_run_feature/*16*/);
  1199. }
  1200. else {
  1201. R=X662use_current((((T72*)C))->_target/*12*/);
  1202. }
  1203. /*FI*/return R;
  1204. }
  1205. void r72cpc_to_runnable(T72* C,T0* a1){
  1206. T0* _rc=NULL;
  1207. T0* _t=NULL;
  1208. _t=X662to_runnable((((T72*)C))->_target/*12*/,a1);
  1209. /*IF*/if ((_t)==((void*)(NULL))) {
  1210. r683add_position(X662start_position((((T72*)C))->_target/*12*/));
  1211. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1212. r683fatal_error(((T683*)(oBC364eh)),b1);
  1213. }/*]*/
  1214. }
  1215. /*FI*/C->_target=_t;
  1216. _rc=X291run_class(X662result_type((((T72*)C))->_target/*12*/));
  1217. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1218. r576update((((T72*)C))->_target/*12*/,(((T72*)C))->_run_feature/*16*/);
  1219. }
  1220. void r72make_call0(T72* C,T0* a1,T0* a2){
  1221. C->_target=a1;
  1222. C->_feature_name=a2;
  1223. }
  1224. void r72error(T0* a1,T0* a2){
  1225. r683add_position(a1);
  1226. r683error(((T683*)(oBC364eh)),a2);
  1227. }
  1228. int r72isa_dca_inline_argument(T72* C){
  1229. int R=0;
  1230. /*IF*/if (X291is_integer((((T72*)C))->_result_type/*20*/)) {
  1231. R=X662isa_dca_inline_argument((((T72*)C))->_target/*12*/);
  1232. }
  1233. /*FI*/return R;
  1234. }
  1235. /*No:CALL_PREFIX_MINUS.fatal_error*/
  1236. int r72standard_compile_to_jvm_into(T72* C,T0* a1){
  1237. int R=0;
  1238. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T72* C1=C;
  1239. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1240. }/*]*/
  1241. /*]*/
  1242. R=X291jvm_convert_to(X291run_type((((T72*)C))->_result_type/*20*/),a1);
  1243. return R;
  1244. }
  1245. /*No:CALL_PREFIX_MINUS.call_proc_call_c2jvm*/
  1246. void r72afd_check(T72* C){
  1247. T0* _running=NULL;
  1248. T0* _rc=NULL;
  1249. _rc=X291run_class(X662result_type((((T72*)C))->_target/*12*/));
  1250. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1251. /*IF*/if ((_running)==((void*)(NULL))) {
  1252. r683add_position(X662start_position((((T72*)C))->_target/*12*/));
  1253. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1254. r7append(((T7*)(oBC683explanation)),b1);
  1255. }/*]*/
  1256. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1257. r7append(((T7*)(oBC683explanation)),b1);
  1258. }/*]*/
  1259. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1260. r7append(((T7*)(oBC683explanation)),b1);
  1261. }/*]*/
  1262. r683print_as_warning(((T683*)(oBC364eh)));
  1263. r355set_at_run_time(((T355*)_rc));
  1264. }
  1265.  else if ((r396count(((T396*)_running)))>(0)) {
  1266. r576update((((T72*)C))->_target/*12*/,(((T72*)C))->_run_feature/*16*/);
  1267. }
  1268. /*FI*/X662afd_check((((T72*)C))->_target/*12*/);
  1269. /*IF*//*AF*//*AE*/
  1270. /*FI*/}
  1271. /*No:TYPE_REAL.id*/
  1272. /*No:TYPE_REAL.jvm_target_descriptor_in*/
  1273. int fBC364type_real_ref=0;
  1274. T0*oBC364type_real_ref=NULL;
  1275. T0* r209type_real_ref(void){
  1276. if (fBC364type_real_ref==0){
  1277. T0* R=NULL;
  1278. T0* _real_ref=NULL;
  1279. fBC364type_real_ref=1;
  1280. {T451*n=malloc(sizeof(*n));
  1281. *n=M451;
  1282. r451make(n,((T0*)ms24_473),NULL);
  1283. _real_ref=(T0*)n;
  1284. }
  1285. {T657*n=malloc(sizeof(*n));
  1286. *n=M657;
  1287. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_real_ref);
  1288. /*]*/
  1289. R=(T0*)n;
  1290. }
  1291. oBC364type_real_ref=R;}
  1292. return oBC364type_real_ref;}
  1293. int r209jvm_if_x_eq(void){
  1294. int R=0;
  1295. /*[IRF3.4opcode_fcmpg*/r256opcode(((T256*)(oBC364code_attribute)),150,-(1));
  1296. /*]*/
  1297. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  1298. return R;
  1299. }
  1300. int r209has_creation(T209* C,T0* a1){
  1301. int R=0;
  1302. r683add_position(X776start_position(a1));
  1303. r209error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T209*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  1304. return R;
  1305. }
  1306. /*No:TYPE_REAL.is_anchored*/
  1307. /*No:TYPE_REAL.is_array*/
  1308. int r209is_a(T209* C,T0* a1){
  1309. int R=0;
  1310. /*IF*/if ((X291is_real(a1))||(X291is_double(a1))) {
  1311. R=1;
  1312. }
  1313. else {
  1314. R=r605is_subclass_of(((T605*)(r209base_class(C))),X291base_class(a1));
  1315. /*IF*/if (R) {
  1316. r209used_as_reference();
  1317. }
  1318. /*FI*/}
  1319. /*FI*//*IF*/if (!(R)) {
  1320. r683add_type((T0*)C,((T0*)ms71_470));
  1321. r683add_type(a1,((T0*)ms67_470));
  1322. }
  1323. /*FI*/return R;
  1324. }
  1325. /*No:TYPE_REAL.jvm_to_reference*/
  1326. /*No:TYPE_REAL.run_type*/
  1327. /*No:TYPE_REAL.is_pointer*/
  1328. /*No:TYPE_REAL.is_dummy_expanded*/
  1329. int r209jvm_push_default(void){
  1330. int R=0;
  1331. /*[IRF3.4opcode_fconst_0*/r256opcode(((T256*)(oBC364code_attribute)),11,1);
  1332. /*]*/
  1333. R=1;
  1334. return R;
  1335. }
  1336. /*No:TYPE_REAL.is_string*/
  1337. /*No:TYPE_REAL.is_like_feature*/
  1338. /*No:TYPE_REAL.is_like_current*/
  1339. void r209make(T209* C,T0* a1){
  1340. {T451*n=malloc(sizeof(*n));
  1341. *n=M451;
  1342. r451make(n,((T0*)ms23_473),a1);
  1343. C->_base_class_name=(T0*)n;
  1344. }
  1345. }
  1346. /*No:TYPE_REAL.nb_errors*/
  1347. /*No:TYPE_REAL.us_item*/
  1348. void r209load_ref(T0* a1){
  1349. T0* _rf=NULL;
  1350. T0* _rc=NULL;
  1351. T0* _cn=NULL;
  1352. {T451*n=malloc(sizeof(*n));
  1353. *n=M451;
  1354. r451make(n,a1,NULL);
  1355. _cn=(T0*)n;
  1356. }
  1357. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  1358. r355set_at_run_time(((T355*)_rc));
  1359. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
  1360. }
  1361. /*No:TYPE_REAL.jvm_return_code*/
  1362. int fBC209check_type=0;
  1363. void r209check_type(T209* C){
  1364. if (fBC209check_type==0){
  1365. T0* _rc=NULL;
  1366. T0* _bc=NULL;
  1367. fBC209check_type=1;
  1368. _bc=r209base_class(C);
  1369. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1370. _rc=r209run_class(C);
  1371. }
  1372. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1373. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  1374. r209error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T209*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_209));
  1375. }
  1376. /*FI*/}
  1377. /*FI*/}}
  1378. /*No:TYPE_REAL.jvm_xnewarray*/
  1379. /*No:TYPE_REAL.jvm_descriptor_in*/
  1380. /*No:TYPE_REAL.start_position*/
  1381. /*No:TYPE_REAL.fz_inako*/
  1382. /*No:TYPE_REAL.is_user_expanded*/
  1383. /*No:TYPE_REAL.is_character*/
  1384. T0* r209written_mark(void){
  1385. T0* R=NULL;
  1386. R=((T0*)ms23_473);
  1387. return R;
  1388. }
  1389. /*No:TYPE_REAL.is_run_type*/
  1390. T0* r209to_runnable(T209* C,T0* a1){
  1391. T0* R=NULL;
  1392. R=(T0*)C;
  1393. r209check_type(C);
  1394. return R;
  1395. }
  1396. /*No:TYPE_REAL.is_formal_generic*/
  1397. T0* r209generic_list(T209* C){
  1398. T0* R=NULL;
  1399. r209fatal_error_generic_list(C);
  1400. return R;
  1401. }
  1402. /*No:TYPE_REAL.is_real*/
  1403. /*No:TYPE_REAL.is_bit*/
  1404. void r209fatal_error_generic_list(T209* C){
  1405. r683add_type((T0*)C,((T0*)ms12_291));
  1406. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1407. }
  1408. /*No:TYPE_REAL.jvm_check_class_invariant*/
  1409. /*No:TYPE_REAL.us_real*/
  1410. /*No:TYPE_REAL.jvm_xaload*/
  1411. T0* r209smallest_ancestor(T209* C,T0* a1){
  1412. T0* R=NULL;
  1413. T0* _rto=NULL;
  1414. _rto=X291run_type(a1);
  1415. /*IF*/if (X291is_integer(_rto)) {
  1416. R=(T0*)C;
  1417. }
  1418.  else if (X291is_real(_rto)) {
  1419. R=(T0*)C;
  1420. }
  1421.  else if (X291is_double(_rto)) {
  1422. R=a1;
  1423. }
  1424. else {
  1425. R=r657smallest_ancestor(((T657*)(r209type_real_ref())),_rto);
  1426. }
  1427. /*FI*/return R;
  1428. }
  1429. /*No:TYPE_REAL.is_boolean*/
  1430. /*No:TYPE_REAL.is_double*/
  1431. int r209jvm_stack_space(void){
  1432. int R=0;
  1433. /*IF*//*AF*//*AE*/
  1434. R=1;
  1435. /*FI*/return R;
  1436. }
  1437. T0* r209run_class(T209* C){
  1438. T0* R=NULL;
  1439. R=r604run_class((T0*)C);
  1440. return R;
  1441. }
  1442. T0* r209run_time_mark(void){
  1443. T0* R=NULL;
  1444. R=((T0*)ms23_473);
  1445. return R;
  1446. }
  1447. int r209is_a_in(T209* C,T0* a1,T0* a2){
  1448. int R=0;
  1449. T0* _ct=NULL;
  1450. T0* _t2=NULL;
  1451. T0* _t1=NULL;
  1452. /*IF*/if ((r209written_mark())==((void*)(X291written_mark(a1)))) {
  1453. R=1;
  1454. }
  1455. else {
  1456. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  1457. _t1=r209to_runnable(C,_ct);
  1458. _t2=X291to_runnable(a1,_ct);
  1459. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1460. R=1;
  1461. }
  1462. else {
  1463. R=X291is_a(_t1,_t2);
  1464. }
  1465. /*FI*/}
  1466. /*FI*/return R;
  1467. }
  1468. T0* r209look_up_for(T209* C,T0* a1,T0* a2){
  1469. T0* R=NULL;
  1470. R=r605look_up_for(((T605*)(r209base_class(C))),a1,a2);
  1471. return R;
  1472. }
  1473. int r209jvm_convert_to(T0* a1){
  1474. int R=0;
  1475. /*IF*/if (X291is_reference(a1)) {
  1476. /*[IRF3.2jvm_to_reference*/{T0* _ca=NULL;
  1477. int _idx=0;
  1478. T0* _rc=NULL;
  1479. _ca=oBC364code_attribute;
  1480. _rc=r657run_class(((T657*)(r209type_real_ref())));
  1481. _idx=r355fully_qualified_constant_pool_index(((T355*)_rc));
  1482. r256opcode_new(((T256*)_ca),_idx);
  1483. /*[IRF3.4opcode_dup_x1*/r256opcode(((T256*)_ca),90,1);
  1484. /*]*/
  1485. /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0);
  1486. /*]*/
  1487. _idx=r95idx_fieldref4(((T95*)(oBC364constant_pool)),_idx,((T0*)ms86_473),((T0*)ms204_470));
  1488. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  1489. }/*]*/
  1490. R=1;
  1491. }
  1492.  else if (X291is_double(a1)) {
  1493. /*[IRF3.4opcode_f2d*/r256opcode(((T256*)(oBC364code_attribute)),141,1);
  1494. /*]*/
  1495. R=2;
  1496. }
  1497. else {
  1498. R=1;
  1499. }
  1500. /*FI*/return R;
  1501. }
  1502. /*No:TYPE_REAL.us_real_ref*/
  1503. /*No:TYPE_REAL.expanded_initializer*/
  1504. int r209jvm_if_x_ne(void){
  1505. int R=0;
  1506. /*[IRF3.4opcode_fcmpg*/r256opcode(((T256*)(oBC364code_attribute)),150,-(1));
  1507. /*]*/
  1508. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1509. return R;
  1510. }
  1511. /*No:TYPE_REAL.fz_dot*/
  1512. /*No:TYPE_REAL.is_generic*/
  1513. /*No:TYPE_REAL.jvm_write_local*/
  1514. void r209jvm_initialize_local(int a1){
  1515. /*[IRF3.4opcode_fconst_0*/r256opcode(((T256*)(oBC364code_attribute)),11,1);
  1516. /*]*/
  1517. /*[IRF3.6jvm_write_local*/{int b1=a1;
  1518. r256opcode_fstore(((T256*)(oBC364code_attribute)),b1);
  1519. }/*]*/
  1520. }
  1521. int fBC209used_as_reference=0;
  1522. void r209used_as_reference(void){
  1523. if (fBC209used_as_reference==0){
  1524. fBC209used_as_reference=1;
  1525. r209load_ref(((T0*)ms24_473));
  1526. }}
  1527. /*No:TYPE_REAL.fz_78*/
  1528. /*No:TYPE_REAL.is_reference*/
  1529. void r209error(T0* a1,T0* a2){
  1530. r683add_position(a1);
  1531. r683error(((T683*)(oBC364eh)),a2);
  1532. }
  1533. T0* r209base_class(T209* C){
  1534. T0* R=NULL;
  1535. T0* _bcn=NULL;
  1536. _bcn=(((T209*)C))->_base_class_name/*4*/;
  1537. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1538. R=r451base_class(((T451*)_bcn));
  1539. }
  1540. else {
  1541. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1542. r7append(((T7*)(oBC683explanation)),b1);
  1543. }/*]*/
  1544. r683add_type((T0*)C,((T0*)ms67_470));
  1545. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1546. }
  1547. /*FI*/return R;
  1548. }
  1549. /*No:TYPE_REAL.jvm_xastore*/
  1550. /*No:TYPE_REAL.is_any*/
  1551. /*No:TYPE_REAL.jvm_method_flags*/
  1552. /*No:TYPE_REAL.base_class_name*/
  1553. /*No:TYPE_REAL.jvm_push_local*/
  1554. /*No:TYPE_REAL.is_expanded*/
  1555. /*No:TYPE_REAL.is_basic_eiffel_expanded*/
  1556. /*No:TYPE_REAL.is_none*/
  1557. /*No:TYPE_REAL.is_integer*/
  1558. /*No:TYPE_STRING.id*/
  1559. /*No:TYPE_STRING.jvm_target_descriptor_in*/
  1560. /*No:TYPE_STRING.jvm_if_x_eq*/
  1561. int r491has_creation(T491* C,T0* a1){
  1562. int R=0;
  1563. R=r605has_creation(((T605*)(r491base_class(C))),a1);
  1564. return R;
  1565. }
  1566. /*No:TYPE_STRING.is_anchored*/
  1567. /*No:TYPE_STRING.is_array*/
  1568. int r491is_a(T491* C,T0* a1){
  1569. int R=0;
  1570. /*IF*/if (X291is_string(a1)) {
  1571. R=1;
  1572. }
  1573. else {
  1574. R=r605is_subclass_of(((T605*)(r491base_class(C))),X291base_class(a1));
  1575. }
  1576. /*FI*//*IF*/if (!(R)) {
  1577. r683add_type((T0*)C,((T0*)ms71_470));
  1578. r683add_type(a1,((T0*)ms67_470));
  1579. }
  1580. /*FI*/return R;
  1581. }
  1582. /*No:TYPE_STRING.jvm_to_reference*/
  1583. /*No:TYPE_STRING.run_type*/
  1584. /*No:TYPE_STRING.is_pointer*/
  1585. /*No:TYPE_STRING.is_dummy_expanded*/
  1586. int r491jvm_push_default(void){
  1587. int R=0;
  1588. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  1589. /*]*/
  1590. R=1;
  1591. return R;
  1592. }
  1593. /*No:TYPE_STRING.is_string*/
  1594. /*No:TYPE_STRING.is_like_feature*/
  1595. /*No:TYPE_STRING.is_like_current*/
  1596. /*No:TYPE_STRING.us_capacity*/
  1597. void r491make(T491* C,T0* a1){
  1598. {T451*n=malloc(sizeof(*n));
  1599. *n=M451;
  1600. r451make(n,((T0*)ms25_473),a1);
  1601. C->_base_class_name=(T0*)n;
  1602. }
  1603. }
  1604. T0* r491jvm_root_class(void){
  1605. if (fBC364jvm_root_class==0){
  1606. T0* R=NULL;
  1607. fBC364jvm_root_class=1;
  1608. {T7*n=malloc(sizeof(*n));
  1609. *n=M7;
  1610. r7make(n,12);
  1611. R=(T0*)n;
  1612. }
  1613. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  1614. r7extend(((T7*)R),'\57');
  1615. r7append(((T7*)R),((T0*)ms112_470));
  1616. oBC364jvm_root_class=R;}
  1617. return oBC364jvm_root_class;}
  1618. /*No:TYPE_STRING.nb_errors*/
  1619. /*No:TYPE_STRING.us_string*/
  1620. /*No:TYPE_STRING.jvm_return_code*/
  1621. int fBC491check_type=0;
  1622. void r491check_type(T491* C){
  1623. if (fBC491check_type==0){
  1624. T0* _rf=NULL;
  1625. T0* _rc=NULL;
  1626. T0* _bc=NULL;
  1627. fBC491check_type=1;
  1628. _bc=r491base_class(C);
  1629. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1630. _rc=r491run_class(C);
  1631. }
  1632. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1633. /*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
  1634. r491error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T491*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_491));
  1635. }
  1636. /*FI*/}
  1637. /*FI*/_rc=r491run_class(C);
  1638. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms55_473));
  1639. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms60_473));
  1640. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms130_473));
  1641. r355set_at_run_time(((T355*)(X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_result_type/*24*/)))));
  1642. }}
  1643. /*No:TYPE_STRING.jvm_xnewarray*/
  1644. /*No:TYPE_STRING.jvm_descriptor_in*/
  1645. /*No:TYPE_STRING.start_position*/
  1646. /*No:TYPE_STRING.fz_inako*/
  1647. /*No:TYPE_STRING.is_user_expanded*/
  1648. /*No:TYPE_STRING.is_character*/
  1649.  
  1650.